home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Just Call Me Internet
/
Just Call Me Internet.iso
/
prog
/
atari
/
m2
/
cat3src
/
magic
/
d
/
mtfonts.d
< prev
next >
Wrap
Text File
|
1997-10-26
|
7KB
|
162 lines
(*----------------------------------------------------------------------*
* *
* MAGICTOOLS Modula's All purpose GEM Interface Cadre Toolbox *
* ÿ ÿ ÿ ÿ ÿ *
*----------------------------------------------------------------------*
* Version 3.30 02.02.1992 (C)90/91/92 by Peter Hellinger Software *
*----------------------------------------------------------------------*
* Dieses Modul ist urheberrechtlich geschtzt. *
* *
* Die Verffentlichung des Quelltextes oder Teilen daraus, sowie die *
* Verbreitung des bersetzten, nicht gelinkten Codes in schriftlicher, *
* oder maschinenlesbarer Form, insbesondere in Zeitschriften, Mail- *
* boxen oder anderen Medien bedarf der ausdrcklichen schriftlichen *
* Einverstndnisserklrung des Autors. *
* *
* Die Verbreitung des Moduls als Teil eines gelinkten Programms ist *
* fr Lizenznehmer ausdrcklich erlaubt! Der Autor behlt sich das *
* Recht vor, diese Erlaubnis jederzeit und ohne Angaben von Grnden zu *
* widerrufen. *
*----------------------------------------------------------------------*)
(*----------------------------------------------------------------------*
* mtFonts Fontfunktionen. Die Philisophie ist, da alles was die *
* Zeichenstze angeht, ber dieses Modul gemacht wird; *
* also auch Farbe, Effekte, Rotation etc. Damit werden *
* alle Informationen an zentraler Stelle verwaltet. *
*----------------------------------------------------------------------*)
DEFINITION MODULE mtFonts;
FROM MagicSys IMPORT Nil, Null, Bit0, Bit1, Bit2, Bit3, Bit4, Bit5, Bit6,
Bit7, Bit8, Bit9, Bit10, Bit11, Bit12, Bit13, Bit14,
Bit15, LOC, Byte, ByteSet, sWORD, sINTEGER, sCARDINAL,
sBITSET, lINTEGER, lCARDINAL, lWORD, lBITSET;
IMPORT SYSTEM;
CONST ErrNoFonts = 0; (* Keine Fonts geladen *)
ErrNoGdos = -1; (* Kein GDOS *)
ErrLessMem = -2; (* Kein Speicher *)
ErrWorkstation = -3; (* Workstation nicht ber mtAppl geffnet *)
PROCEDURE LoadFonts (handle: sINTEGER): sINTEGER;
(* Ldt GEM-Fonts, wenn mglich. Dazu mu natrlich ein GDOS prsent
* sein. Returniert einen Errorcode bzw. die Anzahl der geladenen Fonts.
*)
PROCEDURE UnloadFonts (handle: sINTEGER);
(* Gibt die geladenen Fonts wieder frei. *)
CONST FFIRST = 0;
FNEXT = 1;
FPREV = 2;
FLAST = 3;
PROCEDURE FontList (handle, flag: sINTEGER): sINTEGER;
(* Geht entsprechend flag durch die Liste der Fonts. Returniert
* den Font-ID oder 0, wenn Ende der Liste erreicht.
*
* FFIRST = Liefert den ersten Font
* FNEXT = Nchster Font in der Liste
* FPREV = Vorhergehender Font in der Liste
*)
TYPE tFontinfo = RECORD
name: ARRAY [0..32] OF CHAR; (* Name des Fonts *)
id: sINTEGER; (* Font-ID *)
color: sINTEGER; (* Farbindex *)
rot: sINTEGER; (* Rotationsrichtung *)
halign: sINTEGER; (* Horizontale Ausrichtung *)
valign: sINTEGER; (* Vertikale Ausrichtung *)
chw: sINTEGER; (* Zeichenbreite *)
chh: sINTEGER; (* Zeichenhhe *)
boxw: sINTEGER; (* Zellenbreite *)
boxh: sINTEGER; (* Zellenhhe *)
effect: sBITSET; (* Texteffekte *)
min: sINTEGER; (* Minimale Gre des Fonts *)
max: sINTEGER; (* Maximale Gre des Fonts *)
point: sINTEGER; (* aktuelle Gre des Fonts *)
width: sINTEGER; (* Breite bei FSM-Fonts *)
skew: sINTEGER; (* Neigung bei FSM-Fonts *)
mono: BOOLEAN; (* TRUE, wenn Monospaced *)
fsm: BOOLEAN; (* TRUE, wenn FSM-Font *)
END;
PROCEDURE FontInfo (handle, font: sINTEGER; VAR info: tFontinfo);
(* Info ber den Font *)
PROCEDURE FontActive (handle: sINTEGER): sINTEGER;
(* Liefert den momentan aktiven Font *)
PROCEDURE FontSelect (handle: sINTEGER; font: sINTEGER; actual: BOOLEAN);
(* Selektion eines Fonts. Der Parameter 'actual' bestimmt, ob der Zeichen-
* satz mit den aktuellen Werten des Vorgngers bernommen wird (Gre,
* Farbe, Effekte etc.) - actual = TRUE, oder ob die Werte eingestellt werden
* sollen, die als letztes fr den neuen Font gltig waren (actual = FALSE).
*)
PROCEDURE FontSize (handle, size: sINTEGER;
VAR cw, ch, bw, bh: sINTEGER): sINTEGER;
(* Bestimmung der Gre des aktuellen Fonts in POINTS.
* cw = Zeichenbreite
* ch = Zeichenhhe
* bw = Breite der Zeichenbox
* bh = Hhe der Zeichenbox
*)
PROCEDURE FontDefsize (handle: INTEGER): INTEGER;
(* Stellt die Max-Gre DIV 2 des aktuellen Fonts ein. Dies ist in der
* Regel der Default-Size des Fonts.
* Beim Systemfont wird die Gre entsprechend der Auflsung gesetzt.
*)
PROCEDURE NextBigger (handle: INTEGER): INTEGER;
PROCEDURE NextSmaller (handle: INTEGER): INTEGER;
(* Liefern die nchstmgliche Fontgre des aktuellen Fonts *)
PROCEDURE FontColor (handle, color: sINTEGER);
(* Farbe des Fonts einstellen *)
PROCEDURE FontEffekt (handle: sINTEGER; effekt: sBITSET);
(* Effekte des Fonts einstellen *)
PROCEDURE FontRotate (handle, angle: sINTEGER): sINTEGER;
(* Winkel einstellen, in dem der Font ausgegeben wird. Bei Bitmap-
* Fonts sind hier nur 0, 90, 180 und 270 Grad mglich.
* angle ist in Zehntel Grad anzugeben (1800 fr 180 Grad)
*)
PROCEDURE FontWidth (handle, width: sINTEGER);
(* Bestimmung des Breiten-Verhltnisses der Zeichen. NUR MIT FSM-FONTS!!! *)
PROCEDURE FontSkew (handle, skew: sINTEGER);
(* Bestimmung der Neigung der Zeichen. NUR MIT FSM-FONTS!!! *)
PROCEDURE FontExtent (handle: sINTEGER; REF str: ARRAY OF CHAR;
VAR rect: ARRAY OF LOC);
(* Berechnet die Ausdehnung eines Strings.
* ACHTUNG: In rect wird Platz fr 4 Koordinaten-Paare erwartet, die
* das Rechteck beschreiben!
*)
PROCEDURE FontError (): sINTEGER;
(* Liefert nach einer Fontaktion eine Fehlermeldung. Dabei werden als
* Grundlage die Fehlercodes von FSM-GDOS benutzt:
*
* NoError = 0
* CharNotFound = 1
* ReadError = 8
* OpenError = 9
* BadFileformat = 10
* OutOfMemory = 11
* MiscError = -1
*)
END mtFonts.